error-prone algorithms